#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "dialog_regist.h"
#include "dialog_password.h"
#include "book_form.h"
#include "danci_form.h"
#include "dialog_about_us.h"
#include "form_shop.h"
#include "form_back.h"
#include <QLineEdit>
#include <QPushButton>
#include <QtNetwork/QTcpSocket>
#include <QLabel>
#include <QMouseEvent>
#include <QMovie>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void mousePressEvent(QMouseEvent *e);
    void mouseMoveEvent(QMouseEvent *e);
    void mouseReleaseEvent(QMouseEvent *e);
    QTimer *timer;

private slots:

    void pushButton_Login_clicked();    //登录按钮按下槽函数

    void pushButton_Regist_clicked();   //注册按钮按下槽函数

    void send_regist_date_to_server();  //发送注册数据到服务器

    void send_regist_compare_date();        //发送用户名对比数据到服务器

    void set_user_name();               //自动填写用户名

    void Retrieve_Password();           //找回密码槽函数

    void slot_send_psssinformation();   //发送有效信息验证数据

    void slot_send_password();          //发送密码信息

    void on_pushButton_close_clicked();     //关闭按钮槽函数

    void on_pushButton_Mini_clicked();      //最小化按钮槽函数

    void on_pushButton_on_off_clicked();        // 快捷键开关槽函数

    void slot_pushbutton_shop_clicked();            //商店超函数

    void on_pushButton_book_clicked();              //点击读书按钮

    void on_pushButton_danci_clicked();                 //点击单词按钮槽函数

    void the_Book_Form_Close();                         //点击书关闭按钮槽函数

    void slot_about_us();                           //关于我们槽函数

    void the_Word_Form_Close();             //关闭背单词界面槽函数

    void slot_pushbutton_pack();                //背包槽函数

    void play_Dog_Move(int temp);                   //播放Dog动画

    void slot_requestFinished(int flag,bool bSuccess, const QString& strResult); //http请求结束

    void slot_valueFinished(int flag);

    void user_dog_data();


    void on_pushButton_on_off_clicked(bool checked);
    void update();
protected:
    void set_Life(int life_number);             //设置生命值
    void set_Eng(int Eng);              //设置能量值
    void set_Shechi(int She);               //设置奢侈度
    void set_Coin(QString Coin);            //设置金币值
private:
    Ui::MainWindow *ui;
    QPoint last;


    //网络部分
    //    QLineEdit *lineEdit_ip_Input;           //Ip地址输入狂
    //    QPushButton *pushButton_connect_Server;     //连接到服务器按钮
    //    QTcpSocket *socket;                     //新建socket
    //    bool socket_Connect_Flag;               //新建连接标志
    //    QLabel *tcp_lable;                      //新建连接按钮


    //登录使用
    QLineEdit *lineEdit_User_Name,*lineEdit_User_Password;                  //用户名和密码输入框
    QPushButton *pushButton_Login,*pushButton_Regist,*pushButton_Retrieve_Password,*pushButton_set_up,*pushButton_shop,*pushButton_AboutUs,*pushButton_Pack;         //登录、注册、找回密码按钮
    User_Login_Infor user_login_date; //登录信息结构体
    bool succeed_login_Flag;                    //登录成功标志位


    //注册使用
    Dialog_Regist *user_regist;                 //新建注册界面
    User_compare_name user_name_date;           //新建注解信息结构体


    //找回密码使用
    Dialog_password *Retrieve_Password_Dialog;                  //新建 找回密码界面


    //读书专用
    Book_Form *book;                //新建电子书界面

    //背单词专用
    Danci_Form *danci;              //新建背单词界面


    //关于我们专用
    Dialog_About_us *about_Us;


    //商店专用
    Form_Shop *shop;


    //背包专用

    Form_back *pack;

    //播放dog动画
    QMovie *dog_Movie;


    //商店和背包是否被打开
    QString open_flag;



};

#endif // MAINWINDOW_H
